package com.fengdi.book.easy.Array;

public class SingleNumber {
    static class Result {
        int val;
    }


    public int singleNumber(int[] nums) {
        //Map<Integer, Integer> map = new HashMap<>();
        //
        //for (int num : nums) {
        //    if(map.containsKey(num)) {
        //        map.put(num, map.get(num) + 1);
        //    }else {
        //        map.put(num, 1);
        //    }
        //}
        //
        //final Result result = new Result();
        //
        //map.forEach((k,v) -> {
        //    if(v == 1){
        //        result.val = k;
        //    }
        //});
        //
        //return result.val;

        /*
         * 按位异或，由于每个数字最多存在两次，a^a = 0 ，a^0=a，a^a^b=a^b^a = b
         * */
        int result = 0;
        for(int num : nums){
            result ^= num;
        }

        return result;
    }
}
